package com.ouc.service;

import com.ouc.domain.*;

import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;

public interface NavigationService {

  public int creatPre(PreFile preFile);

  public String runPre(String preDir);

  public PreFile getPreResult(PreFile preFile);

  public PreFile getPreWaFile(PreFile preFile);

  public int creatMain(MainFile mainFile);

  public String runMain(String mainDir);

  public MainOutFile getMainOutFile(String fileDir, String jobName);

  public String creatMapInFile(MainOutFile mainOutFile);

  public int creatSpectrumSetting(SpectrumSetting spectrumSetting);

  public String runSpectrum(String spectrumDir);

  public List<SpectrumResult> getSpectrumResult(String spectrumDir);

  public List<SpectrumResult> getSpectrumResultDemo(String spectrumDir, String resultFileName);

  public int creatPointSafety(PointSafety pointSafety);

  public String runPointSafety(String pointSafetyDir);

  public PointSafety getPointSafety(String fileDir, String projectName, String projectTime);

  public int creatRoteSafety(RoteSafety roteSafety);

  public String runRoteSafety(String roteSafetyDir);

  public MainOutFile getRoteSafety(String fileDir, String projectName, String projectTime);

  public Integer creatSpectrumSettingByRote(MainOutFile mainOutFile, SpectrumSetting spectrumSetting, Double shipSpeed);

  public Integer creatSpectrumSettingByWa(PreFile preFile, SpectrumSetting spectrumSetting, Double shipSpeed);

  public int creatShipParameters(RoteSafety roteSafety);

  public String runSafetyEnv(String safetyEnvDir);

  public PreFile getEnvOutFile(String filePath);

  public byte[] getPngFromMainOut(MainOutFile mainOutFile) throws IOException, ExecutionException, InterruptedException;

  public byte[] getPngFromData2D(Float[][] data2D) throws IOException, ExecutionException, InterruptedException;

  public byte[] getPngFromData2D(Double[][] data2D) throws IOException, ExecutionException, InterruptedException;
}
